﻿var ns, toast, actionsheet, imageBrowser, WXPhotoPicker, docReader, fileBrowser;
var app = new Vue({
    el: '#app',
    data: {
        chooseType: 1,
        form: {
            ID: '',
            GoodsList: [],
            GoodsUseName: '',
            ApprovalUserID: [],
            SendUserIDs: [],
            Remark: '',
            // action: 'savepurchaserequisition',
            exFileList: [],
            ApplyUser:'',
            ApplyUserName: '',
            DemandTime: '',
            DepartmentIDs: [],
            DepartmentNames: "",
            DepartmentAllNames: "",
        },
        select_id_list: [],//选中的抄送人员(多选)
        choose_id_list: [],//选中的审批人员(多选)
        examine_writenum: 0,
        showCalender: false,
        //审批-附件
        exshowup: false,
        exmaxuploadcount: CONFIG.maxuploadcount,
        exUploadList: [],
        exFileList: [],
        //部门
        IsDepartmentOpen: false,
        DepartmentList: [],
    },
    methods: {
        getDepartmentList(){
            var that = this;
            var options = {};
            options.action = "getckdepartmentuserempower";
            ns.post(options, function (succeed, data, err) {
                if (succeed) {
                    that.DepartmentList = data.data;
                } 
            });
        },
        //提交
        do_save: function (type) {
            var that = this;
            // if (that.form.GoodsUseName == "") {
            //     api.toast({
            //         msg: '请填写用途说明',
            //         duration: 2000,
            //         location: 'bottom'
            //     });
            //     return;
            // }
            if (that.form.GoodsList.length <= 0) {
                api.toast({
                    msg: '请至少选择一条物品信息',
                    duration: 2000,
                    location: 'bottom'
                });
                return;
            }
            if (that.form.GoodsList.length > 0) {
                for (var i = 0; i < that.form.GoodsList.length; i++) {
                    if (that.form.GoodsList[i].Name == "") {
                        api.toast({
                            msg: '请填写物品名称',
                            duration: 2000,
                            location: 'bottom'
                        });
                        return;
                    }
                    if (that.form.GoodsList[i].Number == "" || that.form.GoodsList[i].Number <= 0) {
                        api.toast({
                            msg: '请填写物品数量',
                            duration: 2000,
                            location: 'bottom'
                        });
                        return;
                    }
                }
            }
            if (that.choose_id_list.length <= 0) {
                api.toast({
                    msg: '请选择审批人',
                    duration: 2000,
                    location: 'bottom'
                });
                return;
            }
            that.doSaveOk();
        },
        doSaveOk() {
            var that = this;
            //物品重新赋值
            var productlist=[];
            that.form.GoodsList.forEach((item)=>{
                var newmodel={ProductID:item.ID,Quantity:item.Number,UnitPrice:item.UnitPrice,Remark:''};
                productlist.push(newmodel);
            });
             //审批参数
            var ApprovalUserIDs=[];
            for (var i = 0; i < that.choose_id_list.length; i++) {
                var item = that.choose_id_list[i].UserID;
                ApprovalUserIDs.push(item);
            }
            var SendUserIDs = [];
            for (var i = 0; i < that.select_id_list.length; i++) {
                var item = that.select_id_list[i].UserID;
                SendUserIDs.push(item);
            }
            //审批-附件
           var exFileLists = [];
            for (var i = 0; i < that.exUploadList.length; i++) {
                var item = that.exUploadList[i].ID;
                exFileLists.push(item);
            }
            //仓库-采购申请
            var options = {
                action:'saveckpurchaseapplysummary',
                ID: 0,
                DepartmentIDs: JSON.stringify(that.form.DepartmentIDs),
                DepartmentName: that.form.DepartmentAllNames,
                DemandTime: that.form.DemandTime,
                UseNote: that.form.GoodsUseName,
                ProductRows: JSON.stringify(productlist),
                ApprovalUserID:JSON.stringify(ApprovalUserIDs),
                SendUserIDs:JSON.stringify(SendUserIDs),
                exFileList: JSON.stringify(exFileLists)
            }
            // console.log(JSON.stringify(options));
            ns.post(options, function (succeed, data, err) {
                if (succeed) {
                    api.toast({
                        msg: '提交成功',
                        duration: 2000,
                        location: 'bottom'
                    });
                    api.sendEvent({
                        name: 'purchase_updata',
                    });
                    api.sendEvent({
                        name: 'reloadexaminelist'
                    })
                    setTimeout(() => {
                        api.closeWin();
                    }, 400);

                } else if (err) {
                    api.toast({
                        msg: err,
                        duration: 2000,
                        location: 'bottom'
                    });
                }
            });
        },
        //审批申请限制字数
        examine_writeMsg: function () {
            var that = this;
            that.examine_writenum = that.form.Remark.length;
        },
        // 增加物品
        addbox: function () {
            // this.form.GoodsList.push({
            //     ID:0,
            //     Name:'',
            //     Number:'',
            //     UnitPrice:'',
            //     Money:'',
            // });
            var that = this;
            ns.openWin('chooseckproduct_frm', '物品选择', {
                IsChoose: 1,
            });
        },
        do_delete: function (item, index) {
            this.form.GoodsList.splice(index, 1);
        },
        open_more: function (type) {
            var that = this;
            //审批全部
            if (type == 1) {
                ns.openWin('examine_Allperson', '全部审批人员', {
                    list: that.choose_id_list,
                    type: type,
                });
            } else if (type == 0) {
                ns.openWin('examine_Allperson', '全部抄送人员', {
                    list: that.select_id_list,
                    type: type,
                });
            }
        },
        //选择人
        choose_persons: function (IsApproval) {
            var that = this;
            that.chooseType = IsApproval;
            // IsApproval==0//抄送
            if (IsApproval == 0) {
                //chooseuser_frm
                // ns.openWin('chooseperson_frm', '请选择', {
                //         source: 'transfer',
                // }); 
                ns.openWin('chooseuser_frm', '选择抄送人', {
                    source: 'transfer',
                });
            }
            //IsApproval==1//审批
            if (IsApproval == 1) {
                // ns.openWin('chooseperson_frm', '请选择', {
                //    source: 'transfer',
                // });
                ns.openWin('chooseuser_frm', '选择审批人', {
                    source: 'transfer',
                });
            }

        },
        //移除抄送人
        guanbi_pic: function (id, IsApproval) {
            var that = this;
            that.chooseType = IsApproval;
            if (that.chooseType == 1) {
                // that.choose_id_list.splice(index,1);
                that.choose_id_list = that.choose_id_list.filter((item) => {
                    return item.UserID != id
                });
            }
            if (that.chooseType == 0) {
                // console.log(JSON.stringify(that.select_id_list));
                // that.select_id_list.splice(index,1);
                that.select_id_list = that.select_id_list.filter((item) => {
                    return item.UserID != id
                });
            }

        },
        // 抄送人
        select_person: function (select_list, type) {
            var that = this;
            if (type == 0) {
                for (var i = 0; i < select_list.length; i++) {
                    var item = select_list[i];
                    that.select_id_list.push(item);
                }
            } else {
                for (var i = 0; i < select_list.length; i++) {
                    var item = select_list[i];
                    that.choose_id_list.push(item);
                }
            }

            let obj = {};
            if (type == 0) {
                let peon = that.select_id_list.reduce((cur, next) => {
                    obj[next.UserID] ? "" : obj[next.UserID] = true && cur.push(next);
                    return cur;
                }, []);
                that.select_id_list = peon;
            } else {
                let peon = that.choose_id_list.reduce((cur, next) => {
                    obj[next.UserID] ? "" : obj[next.UserID] = true && cur.push(next);
                    return cur;
                }, []);
                that.choose_id_list = peon;
            }

        },
        //审批-上传附件
        do_openUp_ex: function () {
            var that = this;
            that.exshowup = true;
        },
        //上传图片
        add_picture_ex: function () {
            var that = this;
            that.exshowup = false;
            ns.confirmPer('camera', function () {
                that.choose_picture_start_ex();
            })
        },
        choose_picture_start_ex: function () {
            var that = this;
            if (that.exUploadList.length >= that.exmaxuploadcount) {
                api.toast({
                    msg: '最多支持' + that.exmaxuploadcount + '张图片',
                    duration: 2000,
                    location: 'bottom'
                });
                return;
            }
            api.actionSheet({
                cancelTitle: '取消',
                buttons: ['拍照', '从相册选择']
            }, function (ret, err) {
                //拍照
                if (ret.buttonIndex == 1) {
                    that.upload_choose_picture_ex();
                    return;
                }
                //从相册选择
                if (ret.buttonIndex == 2) {
                    that.choose_picture_album_ex();
                    return;
                }
                //取消 
                else {
                    return false;
                }
            });
        },
        upload_choose_picture_ex: function () {
            var that = this;
            api.getPicture({
                sourceType: 'camera',
                encodingType: 'jpg',
                destinationType: 'url',
                allowEdit: false,
                saveToPhotoAlbum: true,
            }, function (ret, err) {
                if (ret && ret.data) {
                    var list = [];
                    list.push({
                        url: ret.data,
                    });
                    const params = {
                        action: "uploadfileone",
                    }
                    ns.post(params, function (succeed, data, err) {
                        if (succeed) {
                            that.exUploadList.push(data.file);
                        }
                    }, {
                        files: {
                            file: list[0].url
                        }
                    })
                }
            });
        },
        choose_picture_album_ex: function () {
            var that = this;
            WXPhotoPicker.open({
                max: that.exmaxuploadcount - that.exUploadList.length,
                type: 'image',
            }, function (ret) {
                if (ret) {
                    if (ret.list.length > 0) {
                        ret.list.forEach((item) => {
                            var list = [];
                            list.push({
                                url: item.path,
                            });
                            const params = {
                                action: "uploadfileone",
                            }
                            ns.post(params, function (succeed, data, err) {
                                if (succeed) {
                                    that.exUploadList.push(data.file);
                                }
                            }, {
                                files: {
                                    file: list[0].url
                                }
                            })
                        });
                    }
                }
            });
        },
        //上传视频
        add_vedio_ex: function () {
            var that = this;
            that.exshowup = false;
            ns.confirmPer('camera', function () {
                that.choose_video_start();
            })
        },
        choose_video_start_ex: function () {
            var that = this;
            WXPhotoPicker.open({
                max: that.exmaxuploadcount - that.exUploadList.length,
                type: 'video',
            }, function (ret) {
                if (ret) {
                    if (ret.list.length > 0) {
                        ret.list.forEach((item) => {
                            var list = [];
                            list.push({
                                url: item.path,
                            });
                            const params = {
                                action: "uploadfileone",
                            }
                            ns.post(params, function (succeed, data, err) {
                                if (succeed) {
                                    that.exUploadList.push(data.file);
                                }
                            }, {
                                files: {
                                    file: list[0].url
                                }
                            })
                        });
                    }
                }
            });
        },
        // 播放视频
        open_video_ex: function (item) {
            var that = this;
            var module = api.require('easyVideoPlayer');
            var param = {
                msg: item.FilePath
            };
            api.download({
                url: item.FilePath,
                savePath: 'fs://app/' + item.FileName,
                report: true,
                cache: true,
                allowResume: true
            }, function (ret, err) {
                if (ret.state == 1) {
                    module.playVideo(param);
                }
            })
        },
        //上传文件
        add_wenjian_ex: function () {
            var that = this;
            that.exshowup = false;
            fileBrowser.open({
                confirm: true
            }, function (ret) {
                fileBrowser.close();
                // alert(JSON.stringify(ret))
                // alert(JSON.stringify(ret && ret.status))
                if (ret) {
                    const url = ret.url || ""
                    var i = url.lastIndexOf('.');
                    var j = url.length;
                    var wenjianName = url.slice(i + 1, j);
                    const params = {
                        action: "fileupload",
                    }
                    ns.post(params, function (succeed, data, err) {
                        if (succeed) {
                            if(data.imgs&&data.imgs.length>0){
                                that.exUploadList.push(data.imgs[0]);
                            }
                        }
                    }, {
                        files: {
                            file: [url]
                        }
                    })
                    return;
                }
                return false;
            });
        },
        open_flie_ex: function (item, index) {
            var that = this;
            var i = item.FileName.lastIndexOf('.');
            var j = item.FileName.length;
            var nameType = item.FileName.slice(i + 1, j);
            if (nameType == 'png' || nameType == 'jpg' || nameType == 'jpeg' || nameType == 'tif' || nameType == 'gif') {
                that.img_browser_ex(item.FilePath);
            } else if (nameType == 'mp4' || nameType == 'wmv' || nameType == 'rmvb' || nameType == 'avi') {
                that.open_video_ex(item);
            } else {
                that.do_openFile_ex(item);
            }
        },
        img_browser_ex: function (imgurl) {
            var that = this;
            var imgurls = [];
            imgurls.push(imgurl);
            imageBrowser.openImages({
                imageUrls: imgurls,
                showList: false,
                activeIndex: 0
            });
        },
        do_openFile_ex: function (item) {
            api.download({
                url: item.FilePath,
                savePath: 'fs://app/' + item.FileName,
                report: true,
                cache: true,
                allowResume: true
            }, function (ret, err) {
                if (ret.state == 1) {
                    docReader.open({
                        path: ret.savePath,
                        autorotation: false
                    }, function (ret, err) {
                        if (ret.status) {
                            // alert(JSON.stringify(ret));
                        } else {
                            alert(JSON.stringify(err));
                        }
                    });
                } else {
                    api.toast({
                        msg: '打开失败',
                        duration: 2000,
                        location: 'bottom'
                    });
                }

            })
        },
        //删除文件
        do_delete_ex: function (id) {
            var that = this;
            that.exUploadList = that.exUploadList.filter((item) => {
                return item.ID != id
            });
        },
        //选择-申请部门
        do_choose_department() {
            this.IsDepartmentOpen = true;
        },
        doCloseDepartment() {
            this.IsDepartmentOpen = false;
        },
        doSelectDepartment(item) {
            var that = this;
            item.IsSelected = !item.IsSelected;
        },
        doChooseOk() {
            var that = this;
            that.doCloseDepartment();
            var departIDs = [];
            var departNames = [];
            var departAllNames = [];
            that.DepartmentList.forEach((item) => {
                if (item.IsSelected) {
                    departIDs.push(item.ID);
                    departNames.push(item.DepartmentName);
                    departAllNames.push(item.Names);
                }
            });
            that.form.DepartmentIDs = departIDs;
            that.form.DepartmentNames = departNames;
            that.form.DepartmentAllNames=departNames.toString();
        },
        onChangeProduct(item) {
            item.Money = item.Number * item.UnitPrice;
        },
        //选择-需求时间
        do_choose_time: function () {
            var that = this;
            that.showCalender = true;
        },
        onConfirm(day) {
            var that = this;
            var y = day.getFullYear();
            var m = day.getMonth() + 1;
            var d = day.getDate();
            var nowdate = y + '-' + (m >= 10 ? m : '0' + m) + '-' + (d >= 10 ? d : '0' + d);
            that.showCalender = false;
            that.form.DemandTime = nowdate;
        },
    }
});

apiready = function () {
    api.parseTapmode();
    ns = window.Foresight.Util;
    toast = new auiToast();
    actionsheet = new auiActionsheet();
    WXPhotoPicker = api.require('WXPhotoPicker');
    imageBrowser = api.require('imageBrowser');
    fileBrowser = api.require('fileBrowser');
    docReader = api.require('docReader');

    app.getDepartmentList();//获取当前登录人的组织架构
    app.form.ApplyUserName= api.getPrefs({
        sync: true,
        key: 'username'
    });
    //审批人
    api.addEventListener({
        name: 'purchase_add'
    }, function (ret) {
        if (app.chooseType == 1) {
            var chooselist = ret.value.data;
            app.select_person(chooselist, 1);
            // app.choose_id_list=ret.value.data;
        }
        if (app.chooseType == 0) {

            var select_list = ret.value.data;
            app.select_person(select_list, 0);
        }

    })
    api.addEventListener({
        name: 'purchase_update'
    }, function (ret) {
        if (ret.value.type == 1) {
            app.choose_id_list = ret.value.data;
        }
        if (ret.value.type == 0) {
            app.select_id_list = ret.value.data;
        }
    })
    //选择责任部门返回
    api.addEventListener({
        name: 'dosavequalitycontrol'
    }, function (ret) {
        app.newform.ResDepartmentName = ret.value.item.text;
        app.newform.ResDepartmentID = ret.value.item.id;

    })

    //选择物品
    api.addEventListener({
        name: 'ckproject_choose'
    }, function (ret) {
        var list = ret.value.list;
        var newlist = [];
        list.forEach(function (item) {
            //判断是否已选择
            var findIndex = app.form.GoodsList.findIndex((val) => {
                return val.ID == item.ID;
            });
            if (findIndex <= -1) {
                var model = { ID: item.ID, Name: item.text, Number: item.Quantity, UnitPrice: item.ProductUnitPrice, Money: item.Quantity*item.ProductUnitPrice, }
                newlist.push(model);
            }
        });
        app.form.GoodsList = app.form.GoodsList.concat(newlist);
    })
};
